home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / NRPAS13 / GASDEV.DEM < prev    next >
Text File  |  1991-04-29  |  1KB  |  53 lines

  1. PROGRAM d7r6 (input,output);
  2. (* driver for routine GASDEV *)
  3. CONST
  4.    n=20;
  5.    nover2=10;   (* n/2 *)
  6.    npts=1000;
  7.    iscal=400;
  8.    llen=50;
  9. VAR
  10.    i,idum,iset,j,k,klim : integer;
  11.    gset : real;
  12.    words : ARRAY [1..50] OF char;
  13.    dist : ARRAY [-nover2..nover2] OF real;
  14.    glinext,glinextp : integer;
  15.    glma : ARRAY [1..55] OF real;
  16.    gliset : integer;
  17.    glgset : real;
  18.  
  19. (*$I MODFILE.PAS *)
  20. (*$I RAN3.PAS *)
  21.  
  22. (*$I GASDEV.PAS *)
  23.  
  24. BEGIN
  25.    gliset := 0;   (* initializes routine gasdev *)
  26.    idum := -13;   (* initializes ran3 *)
  27.    FOR j := -nover2 to nover2 DO BEGIN
  28.       dist[j] := 0.0
  29.    END;
  30.    FOR i := 1 to npts DO BEGIN
  31.       j := round(0.25*n*gasdev(idum));
  32.       IF ((j >= -nover2) AND (j <= nover2)) THEN dist[j] := dist[j]+1
  33.    END;
  34.    writeln ('normally distributed deviate of ',npts:6,' points');
  35.    writeln ('x':5,'p(x)':10,'graph:':9);
  36.    FOR j := -nover2 to nover2 DO BEGIN
  37.       dist[j] := dist[j]/npts;
  38.       FOR k := 1 to 50 DO BEGIN
  39.          words[k] := ' '
  40.       END;
  41.       klim := trunc(iscal*dist[j]);
  42.       IF  (klim > llen) THEN  klim := llen;
  43.       FOR k := 1 to klim DO BEGIN
  44.          words[k] := '*'
  45.       END;
  46.       write (j/(0.25*n):8:4,dist[j]:8:4,'  ');
  47.       FOR k := 1 to 50 DO BEGIN
  48.          write (words[k])
  49.       END;
  50.       writeln
  51.    END
  52. END.
  53.